package ubadbtools.deadlockAnalyzer.grafo;

public class IteradorAntecesores extends IteradorNodos {

	public IteradorAntecesores(Grafo g, int v) {
		super(g);
		if (g.esdigrafo)
			if (g.existeNodo(v))
				ady = g.nodosarray[v].adys;
			else {
				System.out
						.print("Error (88) ConstruirAdyacentes, Sucesores o Antecesores de un nodo no existente.");
				// RunError(88);
			}
		else {
			System.out
					.print("Error (87) Los grafos simples no tienen Sucesores ni Antecesores.");
			// RunError(87);
		}
	}

	public boolean hayMas() {
		ListaAdy auxady;

		auxady = ady;
		while (!auxady.vacia() && (!auxady.primero.vieneDe()))
			auxady = auxady.proximo;
		return (auxady.vacia());
	}

	public int obtenerNodo() {
		int ret = -1;

		while (!ady.vacia() && (!ady.primero.vieneDe())) {
			ady = ady.proximo;
			if (!ady.vacia()) {
				ret = ady.primero.nnodo;
				ady = ady.proximo;
			} else {
				System.out
						.print("Error (86) ObtenerNodo de un Iterador vacio.");
				// RunError(86);
			}
		}
		return ret;
	}
}
